Chrome插件 |
您所在的位置:网站首页 › ipad 百度网盘倍速播放 › Chrome插件 |
目录 前言 开发思路 插件目录结构 弹窗页面 代码下载 前言最近要在百度网盘看视频,网上搜索到实现倍速播放的方法有不少: Iphone/Ipad :下载ALook浏览器,在ALook浏览器中打开百度网盘播放视频就可以选择倍速播放。 PC端浏览器:chrome浏览器打开视频播放页面,F12进入开发者模式输入console命令: videojs.getPlayers("video-player").html5player.tech_.setPlaybackRate(2); 但是这个命令目前已经用不了,原因是百度网盘播放页面不再引用videojs库。 受到上面这条console命令的启发,决定做一个chrome插件来调节播放速度,一劳永逸 ! chrome插件开发入门可以看这篇文章: 【干货】Chrome插件(扩展)开发全攻略 - 我是小茗同学 - 博客园我花了将近一个多月的时间断断续续写下这篇博文,并精心写下完整demo。本文所有涉及到的大部分代码均在这个demo里面 ,大家可以直接下载下来运行。另外,本文图片较多,且图片服务器带宽有限,右下角的目录 对于有开发经验的小伙伴,入门chrome插件开发是很容易的,接下来分享“百度网盘视频调速器”的开发过程: 开发思路分析百度网盘视频播放页面的HTML代码,找到video标签,利用插件的注入脚本来控制video标签速度属性。 分析上面的代码,可以发现其用了attachShadow closed mode,在close模式下插件的js无法获取video标签对象,需要改为open mode,从而才能通过video更改播放速度。 插件目录结构manifest.json是插件的配置文件,必须放在根目录。 { "manifest_version": 2, "name": "视频播放调速器", "description": "仅适用百度网盘", "version": "1.0", "icons":{ "128":"icon/icon128.png", "48":"icon/icon48.png", "16":"icon/icon16.png" }, "browser_action": { "default_popup": "popup.html", "default_icon": "icon/icon16.png" }, "commands": { "_execute_browser_action": { "suggested_key": { "default": "Ctrl+Shift+F", "mac": "MacCtrl+Shift+F" }, "description": "Open popup" } }, "permissions": ["tabs", "https://*/*", "http://*/*"], "content_scripts": [{ "matches": ["https://pan.baidu.com/*"], "run_at": "document_start", "all_frames": true, "js": ["js/injected.js"] }], "web_accessible_resources": ["js/shadowInjected.js"] }向页面注入的脚本代码: js/injected.js //向页面注入的脚本代码 //console.log('run Injected.js'); const injectedScript = document.createElement('script'); injectedScript.src = chrome.extension.getURL('js/shadowInjected.js'); (document.head || document.documentElement).appendChild(injectedScript);js/shadowInjected.js //将网页的attachShadow closed mode改成 open mode //console.log('run shadowInjected.js'); Element.prototype._attachShadow = Element.prototype.attachShadow; Element.prototype.attachShadow = function () { return this._attachShadow( { mode: "open"}); };注意:shadowInject.js不能直接放在"content_scripts"中注入,而要通过injected.js引用,否则不能运行修改open mode的代码。 参考解释:javascript - Override Element.prototype.attachShadow using Chrome Extension - Stack Overflow 以上代码会在打开百度网盘网页时运行,查看页面代码时会发现,close变为open,接下来就可以改变video的播放速度了,为了使用方便,用弹窗的方式来设置速度。 弹窗页面popup.html 是插件的弹窗页面,点击安装好插件后,点击插件图标就会弹出如下图: popup.html: Speed Controller Please enter video speed-num from 0.1 to 16.0 gocss/popup.css #continer{ width:150px; } #tips{ margin-top:-10px; } #number{ width:50px; } #btn1{ width:50px; } text{ display:block; }js/popup.js $(document).ready(function(){ $("#btn1").click(function(){ // $(this).hide(); var num = Number($("#number").val()); if(num>=0.1&&num |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |